package com.dudo.model;
/**
 * DudoPlayer - a simple interface for programming a player for DudoGame
 * @author tneller
 */

public interface DudoPlayer {
	/**
	 * Set the player's zero-based player number. 
	 * @param playerNum - zero-based player number, numbered clockwise from the initial starting player
	 */
	void setPlayer(int playerNum);
	
	/**
	 * Report the current number of dice for each player, indexed by zero-based player number.
	 * @param playerNumDice - the current number of dice for each player, indexed by zero-based player number.
	 */
	void reportPlayerDice(int[] playerNumDice);
	
	/**
	 * Set the current player's roll values.
	 * @param roll - roll values
	 */
	void setRoll(int[] roll);
	
	/**
	 * Report a player's claim.
	 * @param player - player making the claim
	 * @param claim - claim made by the player
	 */
	void reportClaim(int player, Claim claim);
	
	
	/**
	 * Reveal all player roll values at "dudo" showdown, with arrays of die values indexed by zero-based player number
	 * @param allRolls - arrays of die values indexed by zero-based player number
	 */
	void reportAllRolls(int[][] allRolls);
	
	/**
	 * Return the player's claim. (Note: new Claim() is equivalent to challenging "dudo".)  Invalid claims or claims not returned within a specified time limit will be interpreted as challenging "dudo".
	 * @return the player's claim. (Note: new Claim() is equivalent to challenging "dudo".)
	 */
	Claim getClaim();
}
